package cn.zswltech.gruul.biz.service;

import cn.zswltech.gruul.biz.support.service.IService;
import cn.zswltech.gruul.common.dto.*;
import cn.zswltech.gruul.common.result.Response;
import cn.zswltech.gruul.common.entity.MenuDO;

import java.util.List;
import java.util.Map;

public interface MenuService extends IService<MenuDO> {
    Response<Map> createMenu(MenuDO menuDO);

    Response updateMenu(MenuDO menuDO);

    Response deleteMenu(Long id);

    Response<List<MenuDO>> getMenuList();

    /**
     * 分组下菜单列表
     * @param req 菜单分组id
     * @return 菜单集合
     */
    List<MenuInfo> underGroupMenuList(MenuListREQ req);

    /**
     * 新增菜单
     * @param req
     */
    void underGroupMenuAdd(UnderGroupMenuAddREQ req);

    /**
     * 菜单编辑
     * @param req
     */
    void underGroupMenuUpdate(UnderGroupMenuUpdateREQ req);

    /**
     * 菜单删除
     * @param req
     */
    void underGroupMenuDel(UnderGroupMenuDelREQ req);

    /**
     * 获取用户的门户菜单列表
     * @param account
     * @return
     */
    List<GruulMenu> gruulMenuList(String account);
}
